﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using coliseu.BussinessLayer;

namespace coliseu.Views.Condominio
{
    public partial class FrmCadUsuario : Form
    {
        private funcionario f;
        private FuncionarioBL fBl = new FuncionarioBL();
        private GrupoBL gaBl = new GrupoBL();
        private grupo g;
        private UsuarioBL usuBL;
        private usuario usu;
        private bool validacao = false;

        public FrmCadUsuario(UsuarioBL usu)
        {
            InitializeComponent();
            this.usuBL = usu;
            usuarioBindingSource.AddNew();
            //grupoBindingSource.DataSource = gaBl.selecionar();
        }
        public FrmCadUsuario(UsuarioBL usuBl, usuario usu)
        {
            InitializeComponent();
            this.usu = usu;
            this.usuBL = usuBl;
            usuarioBindingSource.DataSource = this.usu;
            f = fBl.selecionar(Convert.ToInt32(this.usu.id_funcionario));
            g = gaBl.selecionar(Convert.ToInt32(this.usu.grupo));
            grupoBindingSource.DataSource = g;
            txtfuncionario.Text = f.nome;
        }


        private void btnConsFuncionario_Click(object sender, EventArgs e)
        {
            FrmConsFuncionario cfunc = new FrmConsFuncionario();
            cfunc.ShowDialog();
            try
            {
                f = cfunc.func;
                txtfuncionario.Text = f.nome;
            }
            catch
            {
                MessageBox.Show("Selecione um funcionário", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void FrmCadUsuario_Load(object sender, EventArgs e)
        {
            grupoBindingSource.DataSource = gaBl.selecionar();
        }



        private void id_funcionarioLabel_Click(object sender, EventArgs e)
        {

        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {

            usuario1TextBox_Validating(sender, null);
            senhaTextBox_Validating(sender, null);
            txtfuncionario_Validating(sender, null);
            descricaoComboBox_Validating(sender, null);

            if (validacao)
            {
                validacao = false;
            }
            else
            {
                ((usuario)usuarioBindingSource.Current).id_funcionario = f.id_funcionario;
                ((usuario)usuarioBindingSource.Current).grupo = Convert.ToInt32(descricaoComboBox.SelectedValue);

                usuarioBindingSource.EndEdit();

                if (usu == null)
                    usuBL.salvar((usuario)usuarioBindingSource.Current, "insert");
                else
                    usuBL.salvar((usuario)usuarioBindingSource.Current, "edit");

                MessageBox.Show("Salvo com sucesso", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Close();
            }

        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void usuario1TextBox_Validating(object sender, CancelEventArgs e)
        {
            if (usuario1TextBox.Text.Trim().Length == 0)
            {
                errorProvider1.SetError(usuario1TextBox, "Campo usuário obrigatório");
                validacao = true;
            }
            else
            {
                errorProvider1.SetError(usuario1TextBox, "");

            }
        }

        private void senhaTextBox_Validating(object sender, CancelEventArgs e)
        {
            if (senhaTextBox.Text.Trim().Length == 0)
            {
                errorProvider1.SetError(senhaTextBox, "Campo senha obrigatório");
                validacao = true;
            }
            else
            {
                errorProvider1.SetError(senhaTextBox, "");
            }
        }

        private void txtfuncionario_Validating(object sender, CancelEventArgs e)
        {
            if (txtfuncionario.Text.Trim().Length == 0)
            {
                errorProvider1.SetError(txtfuncionario, "Campo funcionário obrigatório");
                validacao = true;
            }
            else
            {
                errorProvider1.SetError(txtfuncionario, "");
            }
        }

        private void descricaoComboBox_Validating(object sender, CancelEventArgs e)
        {
            if (descricaoComboBox.Text.Trim().Length == 0)
            {
                errorProvider1.SetError(txtfuncionario, "Campo descrição obrigatório");
                validacao = true;
            }
            else
            {
                errorProvider1.SetError(descricaoComboBox, "");
            }
        }


    }
}
